#ifndef MAIN_WIDGET_H
#define MAIN_WIDGET_H

#include <iostream>
#include "../ui_main_widget.h"
#include "../interface/input.hpp"

#include "../src/vector.hpp"
#include "../src/ray.hpp"
#include "../src/object.hpp"
#include "../src/sphere.hpp"
#include "../src/plane.hpp"
#include "../src/scene.hpp"
#include "../src/raytracer.hpp"
#include "../src/grid.hpp"
#include "../src/light.hpp"
#include "../src/color.hpp"
#include "../src/material.hpp"
#include "../src/photontracer.hpp"
#include "../src/output.hpp"
#include "../interface/qtimage.hpp"

#include <QWidget>
#include <QPixmap>
#include <QImage>
#include <QTime>

using namespace std;

class Main_Widget : public QWidget {

	Q_OBJECT

public:
	Main_Widget(QWidget* parent =0); 
	~Main_Widget(void);
public slots:
	void file_opened(QString);
	void file_closed(void);

private slots:
	void render(void);
signals:
	void statusbar_message(QString);
	
private:
	/* Interface */
	Ui::main ui;
	
	bool file;
	Input* input;
	Raytracer* raytracer;
	Grid* grid;
	Scene* scene;
};

#endif

